from thisapidoesnotexist import get_person
import requests
import time
import os
import random
import pathlib
import platform

path_to_executable = ''

if platform.system() == 'Windows':
    path_to_executable = str(pathlib.Path.cwd()) + '\\protection'
else:
    path_to_executable = str(pathlib.Path.cwd()) + '/protection'

if not os.path.isfile(path_to_executable):
    print("Не найден исполняемый файл нейросети. Загрузите или "
          "соберите его, а затем содайте в этой директории символьную "
          "ссылку на него с именем protection")
    print(f"Ожидаемый путь: {path_to_executable}")
    raise SystemExit(1)
    # FIXME - необходимо проверить на Windows

cmd = f'{path_to_executable} -d /home/q/img2/'

z = input('Сколько фотографий нужно скачать и обработать? ')

chars = 'abcdefghijklnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
x = 1
y = 1

home = pathlib.Path.home()  # Получаем домашнюю директорию пользователя
target = None  # Где будут сохранены фотографии
path = ''  # path string

if isinstance(home, pathlib.PosixPath):
    target = pathlib.PosixPath(str(home) + '/img2')
    target.mkdir(exist_ok=True)
    path = str(target) + '/'
else:
    target = pathlib.WindowsPath(str(home) + '\\img2')
    target.mkdir(exist_ok=True)
    path = str(target) + '\\'

while (True):
    person = get_person()
    person.save_image(path + str(x) + ".jpeg")
    print("Скачали фото № " + str(x))
    time.sleep(3)
    if x == int(z):
        break
    else:
        x = x + 1

print("Применяем нейронную сеть на фотографии, пожалуйста ждите...")

if os.system(cmd + path) != 0:
    # Нейросеть может не запуститься по разным причинам. Самая банальная - бинарник
    # создан для другой платформы или архитектуры (у меня вернуло Illegal instruction (core dumped))
    print("Произошла ошибка при попытке запуска нейросети, команда:")
    print(cmd)
    raise SystemExit(1)

print("Переименуем и удаляем лишнее")

while (True):
    name = path + str(y) + ".jpeg"
    os.remove(name)
    file = path + str(y) + "_min_cloaked.png"
    rand =''
    for i in range(12):
        rand += random.choice(chars)
    file1 = path + rand + ".png"
    os.rename(file, str(file1))
    if y == int(z):
        break
    else:
        y = y + 1

print("Программа завершена, можно шатать систему!")
